package com.sun.service;


import com.github.pagehelper.PageInfo;
import com.sun.pojo.dto.PurchaseOrderDetailsDTO;
import com.sun.pojo.dto.PurchaseOrderDetailsDeliverDTO;
import com.sun.pojo.entity.PurchaseOrderDetails;
import com.sun.pojo.vo.R;

import java.util.List;

/**
 * 采购明细表 记录每个采购订单的具体商品信息。(PurchaseOrderDetails)表服务接口
 *
 * @author makejava
 * @since 2024-10-25 08:18:16
 */
public interface PurchaseOrderDetailsService {

    /**
     * 通过ID查询单条数据
     *
     * @param orderId 主键
     * @return 实例对象
     */
    PurchaseOrderDetails queryById(String orderId);

    /**
     * 分页查询
     *
     * @param purchaseOrderDetails 筛选条件
     * @param pageNum      分页对象
     * @return 查询结果
     */
    PageInfo<PurchaseOrderDetails> queryByPage(PurchaseOrderDetails purchaseOrderDetails,Integer pageNum);

    /**
     * 新增数据
     *
     * @param purchaseOrderDetails 实例对象
     * @return 实例对象
     */
    R insert(List<PurchaseOrderDetailsDTO> purchaseOrderDetails);

    /**
     * 修改数据
     *
     * @param purchaseOrderDetails 实例对象
     * @return 实例对象
     */
    R update(PurchaseOrderDetails purchaseOrderDetails);

    /**
     * 通过主键删除数据
     *
     * @param orderId 主键
     * @return 是否成功
     */
    R deleteById(String orderId);


    /**
     * 通过主键查询订单
     *
     * @param orderId 主键
     * @return 是否成功
     */
    R selectDetailsAll(String orderId);

    R deliver(PurchaseOrderDetailsDeliverDTO dto);

    R selectStatus2(String productName);

    R selectBySupplierId(String supplierId,Integer status);

    R selectSuppliersMoneys(String supplierId, String updatedBy);
}
